package com.xiaoniu.lib_keleim.db.manager;

import android.app.Application;

import com.xiaoniu.lib_keleim.pojo.vos.UserInfoVO;
import com.xiaoniu.lib_keleim.db.ConversationListCallBack;
import com.xiaoniu.lib_keleim.db.MessageListCallBack;
import com.xiaoniu.lib_keleim.pojo.vos.BaseMessage;
import com.xiaoniu.lib_keleim.pojo.vos.MessageConversationVO;
import com.xiaoniu.lib_keleim.pojo.dos.UserEntity;

import java.util.List;

public interface IDBDaoManager {

    /**
     * 初始化数据实例
     * @param application 上下文
     */
    void initDB(Application application);

    /**
     * 更新用户信息
     */
    void updateUserEntity(UserInfoVO entity);

    void updateUserEntity(UserEntity entity);
    /**
     * 获取用户信息
     */
    UserEntity getUserEntity(long customerId);
    /**
     * 获取消息内容
     */
    void updateMessageEntity(BaseMessage entity);
    /**
     * 插入一条消息 模拟对方发送给我
     */
    void insertIncomingMessage(BaseMessage entity);
    /**
     * 插入一条消息 模拟我发出去
     */
    void insertOutgoingMessage(BaseMessage entity);
    /**
     * 删除一条消息
     */
    void deleteMessages(long messageId);
    /**
     * 删除一个会话
     */
    void deleteConversation(long targetId);
    /**
     * 批量插入消息
     */
    void updateMessageEntityArray(List<BaseMessage> entity);
    /**
     * 更新会话
     */
    void updateConversationEntity(MessageConversationVO entity);
    /**
     * 批量插入会话
     */
    void updateConversationEntityArray(List<MessageConversationVO> entity);
    /**
     * 拉取会话列表
     */
    void getConversationListByPage(long timeStamp, final int count, ConversationListCallBack callback);
    /**
     * 拉取消息列表
     */
    void getHistoryMessages(long targetId, long timeStamp, final int count, MessageListCallBack callback);
}
